package com.neusoft.databus.agent.bean;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import lombok.Getter;
import lombok.Setter;

/**
 * description
 *
 * @author sunchf
 * @date 2018年12月28日 上午11:56:06
 */

@Getter
@Setter
public class PoolStatusBean implements Serializable {
    private static final long serialVersionUID = 1L;

    // 节点名
    private String node;
    // 连接池名称
    private String name;
    // 连接池最大连接数
    private long maxTotal;
    // 在池的生命周期內，成功借出的对象数
    private long borrowedCount;
    // 在池的生命周期內，成功归还的对象数
    private long returnedCount;
    // 在池的生命周期內，创建的对象总数
    private long createdCount;
    // 在池的生命周期內，销毁的对象总数
    private long destroyedCount;
    // 在池的生命周期內，被evictor销毁的对象总数
    private long destroyedByEvictorCount;
    // 在池的生命周期內，由于验证失败被销毁的对象总数
    private long destroyedByBorrowValidationCount;
    // 从池中借对象时的平均等待时间
    private long meanBorrowWaitTimeMillis;
    // 从池中借对象时的最大等待时间
    private long maxBorrowWaitTimeMillis;
    // 池中活跃对象数量
    private long numActive;
    // 池中空闲对象数量
    private long numIdle;
    // 每个Key的最大连接数
    private long maxTotalPerKey;
    // 被阻塞的线程数（估计值）
    private long numWaiters;
    // 每个KEY的活跃对象数
    Map<String, Integer> numActivePerKey = new HashMap<>();
    // 每个KEY的等待线程数
    Map<String, Integer> numWaitersByKey = new HashMap<>();
    Map<String, Integer> allObjects = new HashMap<>();

}
